using System.ComponentModel.DataAnnotations.Schema;
using System.Data.Entity.ModelConfiguration; using Sispe.Entities;

namespace Sispe.Repository.Mapping
{
    public class EXPEDIENTEMap : EntityTypeConfiguration<EXPEDIENTE>
    {
        public EXPEDIENTEMap()
        {
            // Primary Key
            this.HasKey(t => t.IdTrabajador);

            // Properties
            // Table & Column Mappings
            this.ToTable("EXPEDIENTE");
            this.Property(t => t.Numero).HasColumnName("Numero").HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity);
            //this.Property(t => t.IdExpediente).HasColumnName("IdExpediente");
            this.Property(t => t.IdTrabajador).HasColumnName("IdTrabajador");
            this.Property(t => t.FichaPersonal).HasColumnName("FichaPersonal");
            this.Property(t => t.HojaInduccion).HasColumnName("HojaInduccion");
            this.Property(t => t.HistorialFotocheck).HasColumnName("HistorialFotocheck");
            this.Property(t => t.InformePsicologico).HasColumnName("InformePsicologico");
            this.Property(t => t.CertificadoEstudios).HasColumnName("CertificadoEstudios");
            this.Property(t => t.CertificadoTrabajo).HasColumnName("CertificadoTrabajo");
            this.Property(t => t.HojaVida).HasColumnName("HojaVida");
            this.Property(t => t.CursoCertificados).HasColumnName("CursoCertificados");
            this.Property(t => t.CopiaDNI).HasColumnName("CopiaDNI");
            this.Property(t => t.ConstanciaAFP).HasColumnName("ConstanciaAFP");
            this.Property(t => t.PartidaMatrimonio).HasColumnName("PartidaMatrimonio");
            this.Property(t => t.CopiaDNIPareja).HasColumnName("CopiaDNIPareja");
            this.Property(t => t.CopiaDNIHijos).HasColumnName("CopiaDNIHijos");
            this.Property(t => t.ConstanciaEstudiosHijos).HasColumnName("ConstanciaEstudiosHijos");
            this.Property(t => t.HojasComplementarias).HasColumnName("HojasComplementarias");
            this.Property(t => t.Retenciones).HasColumnName("Retenciones");
            this.Property(t => t.Observaciones).HasColumnName("Observaciones").HasMaxLength(300).HasColumnType("nvarchar");
            

            // Relationships
            this.HasRequired(t => t.TRABAJADOR)
                .WithOptional(t => t.EXPEDIENTE);
                

        }
    }
}
